In a software-defined network (SDN) architecture, the control plane that implements important network routing and switching functionalities and the data forwarding plane are decoupled. The control plane can be logically centralized and implemented with a variety of hardware components of varied architectures. The data plane may utilize inexpensive and simplified network switches or routers configurable by a SDN controller as a result. The SDN paradigm has increasingly gained popularity in both research and commercial environments due to its scalability, cost-efficiency, reliability, and flexibility in customizing and optimizing network services to specific user needs.
Performance-based routing can improve real-time application performance and availability of a network by selecting an optimized path or load balancing for application data based upon path performance related to desired criteria. In traditional network, the routers or other hardware devices in respective network nodes can readily detect and provide the path performance data which can be used for performance evaluation.
However, due to the separation of the control plane and the data plane in a SDN, it is difficult for a SDN controller to acquire route performance related data and intelligently control the distribution of specific application data over the network in accordance with real-time route performance.